 
package com.xbongbong.sys.domain.dao;

import com.xbongbong.sys.domain.entity.ProPermissionEntity;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;
import java.util.Map;


/**
* @author autoGen
* @time 2019-03-09 17:16:36
*/
public interface ProPermissionDao {

	 
	Integer insert(ProPermissionEntity proPermission);
	Integer update(ProPermissionEntity proPermission);

	ProPermissionEntity getByKey(@Param("key") Integer key);

	ProPermissionEntity getByAlias(@Param("alias") String alias, @Param("tableName") String tableName);

	List<ProPermissionEntity>  findEntitys(@Param("param") Map<String, Object> param, @Param("tableName") String tableName);
	Integer getEntitysCount(@Param("param") Map<String, Object> param, @Param("tableName") String tableName);

	/**
	 * 获取符合条件的proPermissionId列表
	 *
	 * @param param     查询条件
	 * @param tableName
	 * @return 符合条件的proPermissionId列表
	 */
	List<Integer> findEntityIds(@Param("param") Map<String, Object> param, @Param("tableName") String tableName);

	/**
	 * 通过实体idIn参数获取权限alias列表
	 *
	 * @param idIn      需要查询的权限id列表
	 * @param tableName
	 * @return idIn对应的权限alias列表
	 */
	List<String> getAliasByIdIn(@Param("idIn") Collection<Integer> idIn, @Param("tableName") String tableName);

    void updateBatch(@Param("list") List<ProPermissionEntity> list);

    void updateName(@Param("id") Integer id, @Param("name") String name);
}